package telas.comum;

import javax.swing.JInternalFrame;
import business.sistema.IObjetoSistema;
import java.awt.Dimension;
import java.util.ArrayList;
import javax.swing.JToolBar;
import java.awt.BorderLayout;
import telas.componentes.Botao;
import telas.componentes.Painel;

public class TelaMDI extends JInternalFrame 
{
	private static final long serialVersionUID = 1L;
	private ArrayList<IObjetoSistema> listaObjetos = null; 
	private Painel pnlPrincipal = null;
	private JToolBar tlbMenu = null;
	private Botao btNovo = null;
	private Botao btEditar = null;
	private Botao btEcluir = null;
	private Botao btBuscar = null;
	private Painel pnlCadastro = null;
	 
	/**
	 * Construtor 
	 */
	public TelaMDI() throws Exception
	{
		super();
		initialize();
	}
	
	/**
	 * Método responsável por retornar todos os objetos
	 * @return Lista de Objetos
	 */
	public ArrayList<IObjetoSistema> getListaObjetos()
	{
		if (listaObjetos == null)
		{
			listaObjetos = new ArrayList<IObjetoSistema>();
		}
		
		return listaObjetos;
	}

	/**
	 * Método responsável por inicializar os componentes
	 */
	public void initialize() throws Exception
	{
        this.setSize(new Dimension(527, 280));
        this.setLayout(null);
        this.setVisible(true);
        this.setContentPane(getPnlPrincipal());
        this.setClosable(true);
	}
	
	public void obterDados(IObjetoSistema objetoSistema, String filtro)
	{
		listaObjetos = new ArrayList<IObjetoSistema>();
		
		for(IObjetoSistema objeto : objetoSistema.obterTodosPorFiltro(filtro))
		{
			listaObjetos.add(objeto);
		}
	}

	/**
	 * This method initializes pnlPrincipal	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	public Painel getPnlPrincipal() 
	{
		if (pnlPrincipal == null) 
		{
			pnlPrincipal = new Painel();
			pnlPrincipal.setLayout(new BorderLayout());
			pnlPrincipal.add(getTlbMenu(), BorderLayout.NORTH);
			pnlPrincipal.add(getPnlCadastro(), BorderLayout.CENTER);
		}
		return pnlPrincipal;
	}

	/**
	 * This method initializes tlbMenu	
	 * 	
	 * @return javax.swing.JToolBar	
	 */
	public JToolBar getTlbMenu() 
	{
		if (tlbMenu == null) 
		{
			tlbMenu = new JToolBar();
			tlbMenu.add(getBtNovo());
			tlbMenu.add(getBtEditar());
			tlbMenu.add(getBtEcluir());
			tlbMenu.add(getBtBuscar());
		}
		return tlbMenu;
	}

	/**
	 * This method initializes btnNovo	
	 * 	
	 * @return javax.swing.JButton	
	 */
	public Botao getBtNovo() 
	{
		if (btNovo == null) 
		{
			btNovo = new Botao();
			btNovo.setText("Novo");
		}
		return btNovo;
	}

	/**
	 * This method initializes btnEditar	
	 * 	
	 * @return javax.swing.JButton	
	 */
	public Botao getBtEditar() 
	{
		if (btEditar == null) 
		
		{
			btEditar = new Botao();
			btEditar.setText("Editar");
		}
		return btEditar;
	}

	/**
	 * This method initializes btnEcluir	
	 * 	
	 * @return javax.swing.JButton	
	 */
	public Botao getBtEcluir() 
	{
		if (btEcluir == null) 
		{
			btEcluir = new Botao();
			btEcluir.setText("Excluir");
			btEcluir.setEnabled(true);
		}
		return btEcluir;
	}

	/**
	 * This method initializes btnBuscar	
	 * 	
	 * @return javax.swing.JButton	
	 */
	public Botao getBtBuscar() 
	{
		if (btBuscar == null) 
		{
			btBuscar = new Botao();
			btBuscar.setText("Buscar");
		}
		return btBuscar;
	}

	/**
	 * This method initializes pnlCadastro	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	public Painel getPnlCadastro() 
	{
		if (pnlCadastro == null) 
		{
			pnlCadastro = new Painel();
			pnlCadastro.setLayout(new BorderLayout());
			pnlCadastro.setPreferredSize(new java.awt.Dimension(386, 110));
		}
		return pnlCadastro;
	}
}  //  @jve:decl-index=0:visual-constraint="10,10"
